package com.example.rtspDemo;


import org.springframework.stereotype.Component;
import org.springframework.util.ClassUtils;


@Component
public class ConvertVideoPacket {

    public Integer pushVideoAsRTSP(String rtspUrl, String fileName,Long id){
        Process process;

        int flag = -1;
        // ffmpeg位置，最好写在配置文件中
        String ffmpegPath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
        try {
            // cmd命令拼接，注意命令中存在空格
            String command = ffmpegPath; // ffmpeg位置
            command += "ffmpeg -loglevel quiet "; // ffmpeg开头，-re代表按照帧率发送，在推流时必须有
            command += " -i \"" + rtspUrl + "\""; // 指定要推送的视频
            command += " -q 0 -f mpegts -codec:v mpeg1video -s 320x240 " + fileName; // 指定推送服务器，-f：指定格式
            System.out.println("ffmpeg推流命令：" + command);
            // 运行cmd命令，获取其进程
            process = Runtime.getRuntime().exec(command);
            WsHandler.processMap.put(id,process);
            flag = process.waitFor();
        }catch (Exception e){
            e.printStackTrace();
        }
        return flag;
    }
}
